﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:vm="clr-namespace:MachineQA.ViewModel"
                    xmlns:vw="clr-namespace:MachineQA.View"
                    xmlns:local="clr-namespace:MachineQA">
    <DataTemplate x:Key="templateForTheHeader" DataType="{x:Type vm:CommandViewModel}">
        <TextBlock Text="{Binding DisplayName}"/>
    </DataTemplate>

    <DataTemplate DataType="{x:Type vm:MachinesViewModel}">
        <vw:MachinesView />
    </DataTemplate>

    <DataTemplate DataType="{x:Type vm:MachineViewModel}">
        <vw:MachineView />
    </DataTemplate>

    <DataTemplate DataType="{x:Type vm:LocationsViewModel}">
        <vw:LocationsView />
    </DataTemplate>
    
    <DataTemplate DataType="{x:Type vm:LocationViewModel}">
        <vw:LocationView />
    </DataTemplate>
    
    <DataTemplate DataType="{x:Type vm:EnergyViewModel}">
        <vw:EnergyView />
    </DataTemplate>
    
    <DataTemplate DataType="{x:Type vm:EnergiesViewModel}">
        <vw:EnergiesView />
    </DataTemplate>
    
    <DataTemplate x:Key="ViewHeader" DataType="{x:Type vm:ViewModelBase}">
        <TextBlock Text="{Binding DisplayName}"/>
    </DataTemplate>
    <LinearGradientBrush x:Key="Brush_HeaderBackground" StartPoint="0.5,0" EndPoint="0.5,1">
        <GradientStop Color="#66000088" Offset="0" />
        <GradientStop Color="#BB000088" Offset="1" />
    </LinearGradientBrush>
    <!-- 
  This style configures both of the main content areas in the main window.
  -->
    <Style x:Key="MainHCCStyle" TargetType="{x:Type HeaderedContentControl}">
            <Setter Property="HeaderTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <Border 
            Background="{StaticResource Brush_HeaderBackground}" 
            BorderBrush="LightGray" 
            BorderThickness="1" 
            CornerRadius="5" 
            Margin="4" 
            Padding="4" 
            SnapsToDevicePixels="True" 
            >
                            <TextBlock 
              FontSize="14"
              FontWeight="Bold"
              Foreground="White" 
              HorizontalAlignment="Center"  
              Text="{TemplateBinding Content}" 
              />
                        </Border>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
            <Setter Property="IsTabStop" Value="False" />
            <Setter Property="Template">
                <Setter.Value>
                    <!-- 
        This template ensures that content of a HeaderedContentControl 
        fills the available vertical space. 
        -->
                    <ControlTemplate TargetType="{x:Type HeaderedContentControl}">
                        <DockPanel>
                            <ContentPresenter 
              DockPanel.Dock="Top"
              ContentSource="Header" 
              ContentTemplate="{TemplateBinding HeaderTemplate}" 
              />
                            <ContentPresenter 
              ContentSource="Content" 
              ContentTemplate="{TemplateBinding ContentTemplate}" 
              />
                        </DockPanel>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

        <!--
  This style ensures that the borders in the main window are consistent.
  -->
        <Style x:Key="MainBorderStyle" TargetType="{x:Type Border}">
            <Setter Property="Background" Value="WhiteSmoke" />
            <Setter Property="BorderBrush" Value="LightGray" />
            <Setter Property="BorderThickness" Value="1" />
            <Setter Property="CornerRadius" Value="5" />
            <Setter Property="SnapsToDevicePixels" Value="True" />
        </Style>

        <!--
  This template explains how to render the list of commands on the left
  side in the main window (the 'Control Panel' area).
  -->
        <DataTemplate x:Key="CommandsTemplate">
            <ItemsControl IsTabStop="False" ItemsSource="{Binding}" Margin="6,2">
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Margin="2,6">
            <Hyperlink Command="{Binding Path=Command}">
              <TextBlock Text="{Binding Path=DisplayName}" />
            </Hyperlink>
          </TextBlock>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
        </DataTemplate>

        <!-- 
  This template explains how to render 
  a tab item with a close button.
  -->
        <DataTemplate x:Key="ClosableTabItemTemplate">
            <DockPanel Width="120">
                <Button 
        Command="{Binding Path=CloseCommand}"
        Content="X"
        Cursor="Hand"
        DockPanel.Dock="Right"
        Focusable="False"
        FontFamily="Courier" 
        FontSize="9"
        FontWeight="Bold"  
        Margin="0,1,0,0"
        Padding="0"
        VerticalContentAlignment="Bottom"
        Width="16" Height="16" 
        />
                <ContentPresenter 
        Content="{Binding Path=DisplayName}" 
        VerticalAlignment="Center" 
        />
            </DockPanel>
        </DataTemplate>

        <!--
  This template explains how to render the 'Workspace' content area in the main window.
  -->
        <DataTemplate x:Key="WorkspacesTemplate">
        <TabControl 
                
                IsSynchronizedWithCurrentItem="True" 
                ItemsSource="{Binding}" 
                Margin="4">
            <TabControl.ItemContainerStyle>

                <Style TargetType="{x:Type TabItem}">
                    <Setter Property="HeaderTemplate">
                        <Setter.Value>
                            <DataTemplate>
                                <TextBlock Text="{Binding Path=DisplayName}"/>
                            </DataTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </TabControl.ItemContainerStyle>
        </TabControl>
        </DataTemplate>
</ResourceDictionary>